Skip to content

Conversation

@ypatil12
Copy link
Collaborator

@ypatil12 ypatil12 commented Nov 3, 2025

Motivation:

As part of Layr-Labs/eigenlayer-contracts#1645, we are adding a new createOperatorSets function that passes in the slasher address upon creation of an operatorSet. Although the old createOperatorSets function is not being deprecated, we are updating the RegistryCoordinator in order to be only compatible the new function.

Modifications:

  • Update createSlashableStakeQuorum to take in a slasher address
  • Update all tests
  • Update solc version in foundry.toml to 0.8.29, matching Core

Result:

Compatible with updated AllocationManager interface

@ypatil12 ypatil12 force-pushed the feat/update-regCoord-createOpSets branch from 1fbeb57 to b31bebd Compare November 13, 2025 15:59
Update readme for new table calcs deployed

fix: compile

fix: tests

fix: ci pin version

fix: pin forge

test: add skips

chore: fmt
@ypatil12 ypatil12 force-pushed the feat/update-regCoord-createOpSets branch from b31bebd to 2b08af7 Compare November 13, 2025 16:00
@ypatil12
Copy link
Collaborator Author

Note: storage layout appears to be flaky here. No difference between the two and there were no changes to storage of the RegistryCoordinator apart from adding an immutable


/// @notice For delegated stake quorums, the address that is set to slash
/// @dev This address is set to the burn address as 0 addresses are not valid slasher addresses
address public constant DELEGATED_STAKE_SLASHER = 0x00000000000000000000000000000000000E16E4;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

address(registryCoordinator),
allocationManagerAddr,
IAllocationManager.createOperatorSets.selector
bytes4(keccak256("createOperatorSets(address,(uint32,address[],address)[])"))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Guessing this is because there's now two createOperatorSets aliases?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup :)

Comment on lines 234 to 236
AllocationManagerView allocationManagerView = new AllocationManagerView(
delegationManager, eigenStrategy, uint32(7 days), uint32(1 days)
);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Named parameters preferred for readability.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Constants also work

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

);

allocationManagerView =
new AllocationManagerView(delegationMock, eigenStrategy, uint32(7 days), uint32(1 days));
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Constants pls.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

]
# Specifies the exact version of Solidity to use, overriding auto-detection.
solc_version = '0.8.27'
solc_version = '0.8.29'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe want to double check pragmas, especially for ALM view (must be >=0.8.29).

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pragmas should be fine since they don't need to be 0.8.29, only ALM, right?

Copy link
Member

@0xClandestine 0xClandestine left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

some nits, looks good

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants